function [convergence_index, distribution_index] = variable_analysis(problem)
            % 决策变量分析,通过梯度值进行分析
            % :param problem:测试问题实例
            % :return: 收敛变量索引, 分布变量索引
            pop_size = 10;
            % 初始化种群
            pop = problem.Initialization(pop_size);
            grads = zeros(pop_size, problem.D, problem.M);
            for i=1:pop_size
                grads(i,:,:) =problem.CalGrad(pop(i).dec)';
            end
            % 初始化结果矩阵
            res = false(size(grads, 1), size(grads, 2));
            % grads(abs(grads) < 1e-8) = 0;
            for idx = 1:pop_size
                grad = squeeze(grads(idx, :, :));
                res0 = all(grad >= 0, 2);
                res1 = all(grad <= 0, 2);
                res2 = sum(abs(grad) > 1e-8, 2) >= 1;
                res(idx, :) = (res0 | res1) & res2;
            end

            convergence_index = (sum(res, 1) == pop_size);
            distribution_index = ~convergence_index;
end